home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / ein / fvi / fvimsg / msgmain.c < prev    next >
Text File  |  1995-09-27  |  3KB  |  145 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include <egb.h>
  9. #include <guidbg.h>
  10. #include "fvimsg.h"
  11.  
  12. char    *guiEgbPtr ;
  13. int        MSG_forceNum ;
  14.  
  15. int userFunc(apliId, messId, info, data)
  16. int    apliId;
  17. int    messId;
  18. int    info;
  19. int    data;
  20. {
  21.     register int    ret;
  22.  
  23.     ret = ILLEGAL_FUNCTION;
  24.  
  25.     switch(messId)
  26.     {
  27.         case    GM_QUIT :
  28.             MMI_SendMessage( MSG_winId , MM_ERASE , 0 ) ;
  29.             ret = NOERR ;
  30.             break;
  31.  
  32.         case    GM_WAKE :
  33.             MMI_SendMessage( MSG_winId , MM_WAKE , 0 ) ;
  34.             ret = NOERR ;
  35.             break;
  36.  
  37.         case    GM_SLEEP :
  38.             MMI_SendMessage( MSG_winId , MM_SLEEP , 0 ) ;
  39.             ret = NOERR ;
  40.             break;
  41.     }
  42.  
  43.     return ret ;
  44. }
  45.  
  46. void main()
  47. {
  48.     static MMICTRL mmi ;
  49.     extern int APL_init() ;
  50.  
  51.     mmi.page0       = SCREENUNUSED | SCREENIGNORE ;
  52.     mmi.page1       = SCREENUNUSED ;
  53.     mmi.writePage   = 0 ;
  54.     mmi.displayPage = SCREENAVAILABLE ;
  55.     mmi.priority    = 0 ;
  56.     mmi.mode        = SCREENAVAILABLE ;
  57.     mmi.width       = SCREENEXPAND ;
  58.     mmi.size        = 0 ;
  59.     mmi.ptr         = NULL ;
  60.     mmi.asize       = 0 ;
  61.     mmi.aptr        = NULL ;
  62.     mmi.fr.lupx     = 0 ;
  63.     mmi.fr.lupy     = 0 ;
  64.     mmi.fr.rdwx     = 0 ;
  65.     mmi.fr.rdwy     = 0 ;
  66.     mmi.move.lupx   = -16384 ;
  67.     mmi.move.lupy   = -16384;
  68.     mmi.move.rdwx   = 16383 ;
  69.     mmi.move.rdwy   = 16383 ;
  70.     mmi.white       = 15 ;
  71.     mmi.black       =  8 ;
  72.     mmi.gray        =  7 ;
  73.     mmi.xor         =  7 ;
  74.  
  75.     if (MMI_Open( &mmi ) == NOERR)
  76.     {
  77.         if (APL_init() == NOERR)
  78.         {
  79.             MMI_ExecSystem() ;
  80.         }
  81.     }
  82.  
  83.     MMI_Close() ;
  84. }
  85.  
  86. int APL_init()
  87. {
  88.     extern MMIINIT    initDataMSGSET ;
  89.     register int    ret ;
  90.  
  91.     guiEgbPtr = MMI_GetEgbPtr() ;
  92.  
  93.     if ((ret = MMI_initHyper()) < 0)            return ret ;
  94.     if ((ret = MMI_initDialogL40()) < 0)        return ret ;
  95.     if ((ret = MMI_initWindowL40()) < 0)        return ret ;
  96.     if ((ret = MMI_initMessageL40()) < 0)        return ret ;
  97.     if ((ret = MMI_initButtonL40()) < 0)        return ret ;
  98.     if ((ret = MMI_initDrawButtonL40()) < 0)    return ret ;
  99.     if ((ret = MMI_initIconL40()) < 0)            return ret ;
  100.     if ((ret = MMI_initToggleIconL40()) < 0)    return ret ;
  101.     if ((ret = MMI_initTextL40()) < 0)            return ret ;
  102.  
  103.     if ((ret = MMI_Init(&initDataMSGSET)) < 0)    return ret ;
  104.  
  105.     MSG_searchDrive() ;        // 使用できるドライブを検索
  106.  
  107.     MSG_forceNum = 0 ;        // 強制再描画リストのデフォルト
  108.     MTL_setFlagObj( MSG_selectForceId[0]  , MS_TOGGLE ) ;
  109.     MTL_resetFlagObj( MSG_selectForceId[1]  , (~MS_TOGGLE) ) ;
  110.  
  111.     MMI_SendMessage( MSG_winId , MM_ATTACH , 1 , MMI_GetBaseObj() ) ;
  112.     MMI_SendMessage( MSG_winId , MM_WAKE , 0 ) ;
  113.     MMI_SendMessage(MMI_GetBaseObj(), MM_SHOW, 0) ;
  114.     MMI_SendMessage(MMI_GetBaseObj(), MM_SETEXEC, 1, userFunc);
  115.     MMI_CallMessage(MMI_GetApliId(), GM_TITLE, (int)"FViメッセージ送信", 0);
  116.  
  117.     return NOERR ;
  118. }
  119.  
  120. int        MSG_searchDrive()
  121. {
  122.     unsigned int    i , drive , orgdrive ;
  123.  
  124.     orgdrive = FM_GetCurrentDisk() ;
  125.  
  126.     for ( i = 'A' ; i <= 'F' ; i++ )
  127.     {
  128.         FM_SelectDisk( i ) ;
  129.         drive = FM_GetCurrentDisk() ;
  130.         if ( ( drive != i ) || ( i == 'C' ) )
  131.         {
  132.             MTL_setAtrObj( MSG_drvSelBtnId[i-0x40] , MS_INACTIVEL40 ) ;
  133.         }
  134.         else
  135.         {
  136.             MTL_resetAtrObj( MSG_drvSelBtnId[i-0x40] , (~MS_INACTIVEL40) ) ;
  137.         }
  138.     }
  139.  
  140.     FM_SelectDisk( orgdrive ) ;
  141.  
  142.     return NOERR ;
  143. }
  144.  
  145.